home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_bz2.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  14KB  |  371 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. from test import test_support
  5. from test.test_support import TESTFN
  6. import unittest
  7. from cStringIO import StringIO
  8. import os
  9. import popen2
  10. import sys
  11. import bz2
  12. from bz2 import BZ2File, BZ2Compressor, BZ2Decompressor
  13. has_cmdline_bunzip2 = sys.platform not in ('win32', 'os2emx', 'riscos')
  14.  
  15. class BaseTest(unittest.TestCase):
  16.     '''Base for other testcases.'''
  17.     TEXT = 'root:x:0:0:root:/root:/bin/bash\nbin:x:1:1:bin:/bin:\ndaemon:x:2:2:daemon:/sbin:\nadm:x:3:4:adm:/var/adm:\nlp:x:4:7:lp:/var/spool/lpd:\nsync:x:5:0:sync:/sbin:/bin/sync\nshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\nhalt:x:7:0:halt:/sbin:/sbin/halt\nmail:x:8:12:mail:/var/spool/mail:\nnews:x:9:13:news:/var/spool/news:\nuucp:x:10:14:uucp:/var/spool/uucp:\noperator:x:11:0:operator:/root:\ngames:x:12:100:games:/usr/games:\ngopher:x:13:30:gopher:/usr/lib/gopher-data:\nftp:x:14:50:FTP User:/var/ftp:/bin/bash\nnobody:x:65534:65534:Nobody:/home:\npostfix:x:100:101:postfix:/var/spool/postfix:\nniemeyer:x:500:500::/home/niemeyer:/bin/bash\npostgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash\nmysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash\nwww:x:103:104::/var/www:/bin/false\n'
  18.     DATA = 'BZh91AY&SY.\xc8N\x18\x00\x01>_\x80\x00\x10@\x02\xff\xf0\x01\x07n\x00?\xe7\xff\xe00\x01\x99\xaa\x00\xc0\x03F\x86\x8c#&\x83F\x9a\x03\x06\xa6\xd0\xa6\x93M\x0fQ\xa7\xa8\x06\x804hh\x12$\x11\xa4i4\xf14S\xd2<Q\xb5\x0fH\xd3\xd4\xdd\xd5\x87\xbb\xf8\x94\r\x8f\xafI\x12\xe1\xc9\xf8/E\x00pu\x89\x12]\xc9\xbbDL\nQ\x0e\t1\x12\xdf\xa0\xc0\x97\xac2O9\x89\x13\x94\x0e\x1c7\x0ed\x95I\x0c\xaaJ\xa4\x18L\x10\x05#\x9c\xaf\xba\xbc/\x97\x8a#C\xc8\xe1\x8cW\xf9\xe2\xd0\xd6M\xa7\x8bXa<e\x84t\xcbL\xb3\xa7\xd9\xcd\xd1\xcb\x84.\xaf\xb3\xab\xab\xad`n}\xa0lh\tE,\x8eZ\x15\x17VH>\x88\xe5\xcd9gd6\x0b\n\xe9\x9b\xd5\x8a\x99\xf7\x08.K\x8ev\xfb\xf7xw\xbb\xdf\xa1\x92\xf1\xdd|/";\xa2\xba\x9f\xd5\xb1#A\xb6\xf6\xb3o\xc9\xc5y\\\xebO\xe7\x85\x9a\xbc\xb6f8\x952\xd5\xd7"%\x89>V,\xf7\xa6z\xe2\x9f\xa3\xdf\x11\x11"\xd6E)I\xa9\x13^\xca\xf3r\xd0\x03U\x922\xf26\xec\xb6\xed\x8b\xc3U\x13\x9d\xc5\x170\xa4\xfa^\x92\xacDF\x8a\x97\xd6\x19\xfe\xdd\xb8\xbd\x1a\x9a\x19\xa3\x80ankR\x8b\xe5\xd83]\xa9\xc6\x08\x82f\xf6\xb9"6l$\xb8j@\xc0\x8a\xb0l1..\xbak\x83ls\x15\xbc\xf4\xc1\x13\xbe\xf8E\xb8\x9d\r\xa8\x9dk\x84\xd3n\xfa\xacQ\x07\xb1%y\xaav\xb4\x08\xe0z\x1b\x16\xf5\x04\xe9\xcc\xb9\x08z\x1en7.G\xfc]\xc9\x14\xe1B@\xbb!8`'
  19.     DATA_CRLF = 'BZh91AY&SY\xaez\xbbN\x00\x01H\xdf\x80\x00\x12@\x02\xff\xf0\x01\x07n\x00?\xe7\xff\xe0@\x01\xbc\xc6`\x86*\x8d=M\xa9\x9a\x86\xd0L@\x0fI\xa6!\xa1\x13\xc8\x88jdi\x8d@\x03@\x1a\x1a\x0c\x0c\x83 \x00\xc4h2\x19\x01\x82D\x84e\t\xe8\x99\x89\x19\x1ah\x00\r\x1a\x11\xaf\x9b\x0fG\xf5(\x1b\x1f?\t\x12\xcf\xb5\xfc\x95E\x00ps\x89\x12^\xa4\xdd\xa2&\x05(\x87\x04\x98\x89u\xe40%\xb6\x19\'\x8c\xc4\x89\xca\x07\x0e\x1b!\x91UIFU%C\x994!DI\xd2\xfa\xf0\xf1N8W\xde\x13A\xf5\x9cr%?\x9f3;I45A\xd1\x8bT\xb1<l\xba\xcb_\xc00xY\x17r\x17\x88\x08\x08@\xa0\ry@\x10\x04$)`\xf2\xce\x89z\xb0s\xec\x9b.iW\x9d\x81\xb5-+t\x9f\x1a\'\x97dB\xf5x\xb5\xbe.[.\xd7\x0e\x81\xe7\x08\x1cN`\x88\x10\xca\x87\xc3!"\x80\x92R\xa1/\xd1\xc0\xe6mf\xac\xbd\x99\xcca\xb3\x8780>\xa4\xc7\x8d\x1a\\"\xad\xa1\xabyBg\x15\xb9l\x88\x88\x91k"\x94\xa4\xd4\x89\xae*\xa6\x0b\x10\x0c\xd6\xd4m\xe86\xec\xb5j\x8a\x86j\';\xca.\x01I\xf2\xaaJ\xe8\x88\x8cU+t3\xfb\x0c\n\xa33\x13r2\r\x16\xe0\xb3(\xbf\x1d\x83r\xe7M\xf0D\x1365\xd8\x88\xd3\xa4\x92\xcb2\x06\x04\\\xc1\xb0\xea//\xbek&\xd8\xe6+t\xe5\xa1\x13\xada\x16\xder5"w]\xa2i\xb7[\x97R \xe2IT\xcd;Z\x04dk4\xad\x8a\t\xd3\x81z\x10\xf1:^`\xab\x1f\xc5\xdc\x91N\x14$+\x9e\xae\xd3\x80'
  20.     if has_cmdline_bunzip2:
  21.         
  22.         def decompress(self, data):
  23.             pop = popen2.Popen3('bunzip2', capturestderr = 1)
  24.             pop.tochild.write(data)
  25.             pop.tochild.close()
  26.             ret = pop.fromchild.read()
  27.             pop.fromchild.close()
  28.             if pop.wait() != 0:
  29.                 ret = bz2.decompress(data)
  30.             
  31.             return ret
  32.  
  33.     else:
  34.         
  35.         def decompress(self, data):
  36.             return bz2.decompress(data)
  37.  
  38.  
  39.  
  40. class BZ2FileTest(BaseTest):
  41.     '''Test BZ2File type miscellaneous methods.'''
  42.     
  43.     def setUp(self):
  44.         self.filename = TESTFN
  45.  
  46.     
  47.     def tearDown(self):
  48.         if os.path.isfile(self.filename):
  49.             os.unlink(self.filename)
  50.         
  51.  
  52.     
  53.     def createTempFile(self, crlf = 0):
  54.         f = open(self.filename, 'wb')
  55.         if crlf:
  56.             data = self.DATA_CRLF
  57.         else:
  58.             data = self.DATA
  59.         f.write(data)
  60.         f.close()
  61.  
  62.     
  63.     def testRead(self):
  64.         self.createTempFile()
  65.         bz2f = BZ2File(self.filename)
  66.         self.assertRaises(TypeError, bz2f.read, None)
  67.         self.assertEqual(bz2f.read(), self.TEXT)
  68.         bz2f.close()
  69.  
  70.     
  71.     def testReadChunk10(self):
  72.         self.createTempFile()
  73.         bz2f = BZ2File(self.filename)
  74.         text = ''
  75.         while None:
  76.             str = bz2f.read(10)
  77.             if not str:
  78.                 break
  79.             
  80.             text += str
  81.         self.assertEqual(text, text)
  82.         bz2f.close()
  83.  
  84.     
  85.     def testRead100(self):
  86.         self.createTempFile()
  87.         bz2f = BZ2File(self.filename)
  88.         self.assertEqual(bz2f.read(100), self.TEXT[:100])
  89.         bz2f.close()
  90.  
  91.     
  92.     def testReadLine(self):
  93.         self.createTempFile()
  94.         bz2f = BZ2File(self.filename)
  95.         self.assertRaises(TypeError, bz2f.readline, None)
  96.         sio = StringIO(self.TEXT)
  97.         for line in sio.readlines():
  98.             self.assertEqual(bz2f.readline(), line)
  99.         
  100.         bz2f.close()
  101.  
  102.     
  103.     def testReadLines(self):
  104.         self.createTempFile()
  105.         bz2f = BZ2File(self.filename)
  106.         self.assertRaises(TypeError, bz2f.readlines, None)
  107.         sio = StringIO(self.TEXT)
  108.         self.assertEqual(bz2f.readlines(), sio.readlines())
  109.         bz2f.close()
  110.  
  111.     
  112.     def testIterator(self):
  113.         self.createTempFile()
  114.         bz2f = BZ2File(self.filename)
  115.         sio = StringIO(self.TEXT)
  116.         self.assertEqual(list(iter(bz2f)), sio.readlines())
  117.         bz2f.close()
  118.  
  119.     
  120.     def testXReadLines(self):
  121.         self.createTempFile()
  122.         bz2f = BZ2File(self.filename)
  123.         sio = StringIO(self.TEXT)
  124.         self.assertEqual(list(bz2f.xreadlines()), sio.readlines())
  125.         bz2f.close()
  126.  
  127.     
  128.     def testUniversalNewlinesLF(self):
  129.         self.createTempFile()
  130.         bz2f = BZ2File(self.filename, 'rU')
  131.         self.assertEqual(bz2f.read(), self.TEXT)
  132.         self.assertEqual(bz2f.newlines, '\n')
  133.         bz2f.close()
  134.  
  135.     
  136.     def testUniversalNewlinesCRLF(self):
  137.         self.createTempFile(crlf = 1)
  138.         bz2f = BZ2File(self.filename, 'rU')
  139.         self.assertEqual(bz2f.read(), self.TEXT)
  140.         self.assertEqual(bz2f.newlines, '\r\n')
  141.         bz2f.close()
  142.  
  143.     
  144.     def testWrite(self):
  145.         bz2f = BZ2File(self.filename, 'w')
  146.         self.assertRaises(TypeError, bz2f.write)
  147.         bz2f.write(self.TEXT)
  148.         bz2f.close()
  149.         f = open(self.filename, 'rb')
  150.         self.assertEqual(self.decompress(f.read()), self.TEXT)
  151.         f.close()
  152.  
  153.     
  154.     def testWriteChunks10(self):
  155.         bz2f = BZ2File(self.filename, 'w')
  156.         n = 0
  157.         while None:
  158.             str = self.TEXT[n * 10:(n + 1) * 10]
  159.             if not str:
  160.                 break
  161.             
  162.             n += 1
  163.         bz2f.close()
  164.         f = open(self.filename, 'rb')
  165.         self.assertEqual(self.decompress(f.read()), self.TEXT)
  166.         f.close()
  167.  
  168.     
  169.     def testWriteLines(self):
  170.         bz2f = BZ2File(self.filename, 'w')
  171.         self.assertRaises(TypeError, bz2f.writelines)
  172.         sio = StringIO(self.TEXT)
  173.         bz2f.writelines(sio.readlines())
  174.         bz2f.close()
  175.         f = open(self.filename, 'rb')
  176.         self.assertEqual(self.decompress(f.read()), self.TEXT)
  177.         f.close()
  178.  
  179.     
  180.     def testSeekForward(self):
  181.         self.createTempFile()
  182.         bz2f = BZ2File(self.filename)
  183.         self.assertRaises(TypeError, bz2f.seek)
  184.         bz2f.seek(150)
  185.         self.assertEqual(bz2f.read(), self.TEXT[150:])
  186.         bz2f.close()
  187.  
  188.     
  189.     def testSeekBackwards(self):
  190.         self.createTempFile()
  191.         bz2f = BZ2File(self.filename)
  192.         bz2f.read(500)
  193.         bz2f.seek(-150, 1)
  194.         self.assertEqual(bz2f.read(), self.TEXT[500 - 150:])
  195.         bz2f.close()
  196.  
  197.     
  198.     def testSeekBackwardsFromEnd(self):
  199.         self.createTempFile()
  200.         bz2f = BZ2File(self.filename)
  201.         bz2f.seek(-150, 2)
  202.         self.assertEqual(bz2f.read(), self.TEXT[len(self.TEXT) - 150:])
  203.         bz2f.close()
  204.  
  205.     
  206.     def testSeekPostEnd(self):
  207.         self.createTempFile()
  208.         bz2f = BZ2File(self.filename)
  209.         bz2f.seek(150000)
  210.         self.assertEqual(bz2f.tell(), len(self.TEXT))
  211.         self.assertEqual(bz2f.read(), '')
  212.         bz2f.close()
  213.  
  214.     
  215.     def testSeekPostEndTwice(self):
  216.         self.createTempFile()
  217.         bz2f = BZ2File(self.filename)
  218.         bz2f.seek(150000)
  219.         bz2f.seek(150000)
  220.         self.assertEqual(bz2f.tell(), len(self.TEXT))
  221.         self.assertEqual(bz2f.read(), '')
  222.         bz2f.close()
  223.  
  224.     
  225.     def testSeekPreStart(self):
  226.         self.createTempFile()
  227.         bz2f = BZ2File(self.filename)
  228.         bz2f.seek(-150)
  229.         self.assertEqual(bz2f.tell(), 0)
  230.         self.assertEqual(bz2f.read(), self.TEXT)
  231.         bz2f.close()
  232.  
  233.     
  234.     def testOpenDel(self):
  235.         self.createTempFile()
  236.         for i in xrange(10000):
  237.             o = BZ2File(self.filename)
  238.             del o
  239.         
  240.  
  241.     
  242.     def testOpenNonexistent(self):
  243.         self.assertRaises(IOError, BZ2File, '/non/existent')
  244.  
  245.     
  246.     def testModeU(self):
  247.         self.createTempFile()
  248.         bz2f = BZ2File(self.filename, 'U')
  249.         bz2f.close()
  250.         f = file(self.filename)
  251.         f.seek(0, 2)
  252.         self.assertEqual(f.tell(), len(self.DATA))
  253.         f.close()
  254.  
  255.     
  256.     def testBug1191043(self):
  257.         data = 'BZh91AY&SY\xd9b\x89]\x00\x00\x00\x03\x80\x04\x00\x02\x00\x0c\x00 \x00!\x9ah3M\x13<]\xc9\x14\xe1BCe\x8a%t'
  258.         f = open(self.filename, 'wb')
  259.         f.write(data)
  260.         f.close()
  261.         bz2f = BZ2File(self.filename)
  262.         lines = bz2f.readlines()
  263.         bz2f.close()
  264.         self.assertEqual(lines, [
  265.             'Test'])
  266.         bz2f = BZ2File(self.filename)
  267.         xlines = list(bz2f.xreadlines())
  268.         bz2f.close()
  269.         self.assertEqual(lines, [
  270.             'Test'])
  271.  
  272.  
  273.  
  274. class BZ2CompressorTest(BaseTest):
  275.     
  276.     def testCompress(self):
  277.         bz2c = BZ2Compressor()
  278.         self.assertRaises(TypeError, bz2c.compress)
  279.         data = bz2c.compress(self.TEXT)
  280.         data += bz2c.flush()
  281.         self.assertEqual(self.decompress(data), self.TEXT)
  282.  
  283.     
  284.     def testCompressChunks10(self):
  285.         bz2c = BZ2Compressor()
  286.         n = 0
  287.         data = ''
  288.         while None:
  289.             str = self.TEXT[n * 10:(n + 1) * 10]
  290.             if not str:
  291.                 break
  292.             
  293.             data += bz2c.compress(str)
  294.             n += 1
  295.         data += bz2c.flush()
  296.         self.assertEqual(self.decompress(data), self.TEXT)
  297.  
  298.  
  299.  
  300. class BZ2DecompressorTest(BaseTest):
  301.     
  302.     def test_Constructor(self):
  303.         self.assertRaises(TypeError, BZ2Decompressor, 42)
  304.  
  305.     
  306.     def testDecompress(self):
  307.         bz2d = BZ2Decompressor()
  308.         self.assertRaises(TypeError, bz2d.decompress)
  309.         text = bz2d.decompress(self.DATA)
  310.         self.assertEqual(text, self.TEXT)
  311.  
  312.     
  313.     def testDecompressChunks10(self):
  314.         bz2d = BZ2Decompressor()
  315.         text = ''
  316.         n = 0
  317.         while None:
  318.             str = self.DATA[n * 10:(n + 1) * 10]
  319.             if not str:
  320.                 break
  321.             
  322.             text += bz2d.decompress(str)
  323.             n += 1
  324.         self.assertEqual(text, self.TEXT)
  325.  
  326.     
  327.     def testDecompressUnusedData(self):
  328.         bz2d = BZ2Decompressor()
  329.         unused_data = 'this is unused data'
  330.         text = bz2d.decompress(self.DATA + unused_data)
  331.         self.assertEqual(text, self.TEXT)
  332.         self.assertEqual(bz2d.unused_data, unused_data)
  333.  
  334.     
  335.     def testEOFError(self):
  336.         bz2d = BZ2Decompressor()
  337.         text = bz2d.decompress(self.DATA)
  338.         self.assertRaises(EOFError, bz2d.decompress, 'anything')
  339.  
  340.  
  341.  
  342. class FuncTest(BaseTest):
  343.     '''Test module functions'''
  344.     
  345.     def testCompress(self):
  346.         data = bz2.compress(self.TEXT)
  347.         self.assertEqual(self.decompress(data), self.TEXT)
  348.  
  349.     
  350.     def testDecompress(self):
  351.         text = bz2.decompress(self.DATA)
  352.         self.assertEqual(text, self.TEXT)
  353.  
  354.     
  355.     def testDecompressEmpty(self):
  356.         text = bz2.decompress('')
  357.         self.assertEqual(text, '')
  358.  
  359.     
  360.     def testDecompressIncomplete(self):
  361.         self.assertRaises(ValueError, bz2.decompress, self.DATA[:-10])
  362.  
  363.  
  364.  
  365. def test_main():
  366.     test_support.run_unittest(BZ2FileTest, BZ2CompressorTest, BZ2DecompressorTest, FuncTest)
  367.  
  368. if __name__ == '__main__':
  369.     test_main()
  370.  
  371.